<template>
	<view>
		<view class="payment-top acea-row row-column row-center-wrapper">
			<text class="name">我的余额</text>
			<view class="pic">
				<text>
					￥
					<text class="pic-font">{{ now_money || 0 | money}}</text>
				</text>
			</view>
		</view>
		<view class="recharge">
			<view class="nav acea-row row-around row-middle">
				<view class="item on">账户充值</view>
			</view>
			<view class="info-wrapper">
				<view class="picList acea-row row-between mt-20">
					<view class="pic-box pic-box-color acea-row row-center-wrapper row-column" :class="activePic === index ? 'pic-box-color-active' : ''"
					 v-for="(item, index) in picList" :key="index" @click="picCharge(index, item)">
						<view class="pic-number-pic">
							<text>
								{{ item.value.price }}
								<text class="pic-number">元</text>
							</text>
						</view>
						<view class="pic-number" v-if="item.value.give_price > 0">赠送：{{ item.value.give_price }} 元</view>
					</view>
				</view>
				<view class="tip">提示：充值后帐户的金额不能提现</view>
				<view class="pay-btn bg-color-reds" @click="recharge">立即充值</view>
			</view>
		</view>
	</view>
</template>
<script>
	import { mapGetters } from "vuex";
	import { weappPay } from "@/libs/wechat";
	import { rechargeWechat, getRechargeApi } from "@/api/user";
	import { add, sub } from "@/utils/bc";
	import { subscribeMessage } from "@/libs/order";
	export default {
		name: "Recharge",
		components: {},
		props: {},
		data: function() {
			return {
				active: 0,
				from: this.$deviceType,
				money: "",
				now_money: "",
				balanceSum: '',
				picList: [],
				activePic: 0,
				numberPic: "",
				paid_price: "",
				rechar_id: 0,
			};
		},
		computed: mapGetters(["userInfo"]),
		mounted: function() {
			this.now_money = this.userInfo.nowMoney;
			this.getRecharge();
		},
		methods: {
			/**
			 * 充值额度选择
			 */
			getRecharge() {
				getRechargeApi()
					.then((res) => {
						this.picList = res.data.recharge_price_ways || [];
						if (this.picList[0]) {
							this.rechar_id = this.picList[0].id;
							this.paid_price = this.picList[0].value.price;
							this.numberPic = this.picList[0].value.give_price;
						}
					})
					.catch((res) => {
						uni.showToast({
							title: err.msg || err.response.data.msg || err.response.data.message,
							icon: "none",
							duration: 2000,
						});
					});
			},
			/**
			 * 选择金额
			 */
			picCharge(idx, item) {
				this.activePic = idx;
				if (idx == this.picList.length) {
					this.rechar_id = 0;
					this.paid_price = "";
					this.numberPic = "";
				} else {
					this.money = "";
					this.rechar_id = item.id;
					this.paid_price = item.value.give_price;
					this.numberPic = item.value.price;
				}
			},
			recharge: function() {
				let that = this,
					price = Number(this.money);
				if (this.picList.length == this.activePic && price === 0) {
					uni.showToast({
						title: "请输入您要充值的金额",
						icon: "none",
						duration: 2000,
					});
					return;
				} else if (this.picList.length == this.activePic && price < 0.01) {
					uni.showToast({
						title: "充值金额不能低于0.01",
						icon: "none",
						duration: 2000,
					});
					return;
				} else if (this.picList.length == this.activePic && price > 99999) {
					uni.showToast({
						title: "充值金额不能大于99999",
						icon: "none",
						duration: 2000,
					});
					return;
				}
				let prices = "",
					paid_price = "";
				if (price) {
					prices = price;
					paid_price = 0;
				} else {
					prices = that.numberPic;
					paid_price = that.paid_price;
				}
				console.log(this.$deviceType);
				uni.showLoading({
					title: "加载中"
				});
				rechargeWechat({
						price: prices,
						from: this.$deviceType == 'weixin' || this.$deviceType == 'weixinh5' ? 'hyfH5' : 'hyfMini',
						paid_price: paid_price,
						rechar_id: that.rechar_id,
					})
					.then((res) => {
						var data = res.data;
						console.log(data.status);
						if(data.status =="HYF_RECHARGE"){
							setTimeout(() => {
							  location.href = data.mweb_url;
							}, 100);
							this.$router.replace({
								path: "/user/promotion/UserPromotion/index"
							});
						}else{
							uni.hideLoading();
							console.log(res.data)
							weappPay(res.data.result.jsConfig)
								.then(() => {
									prices = add(prices, paid_price);
									that.now_money = add(prices, parseFloat(that.userInfo.nowMoney));
									uni.showToast({
										title: "支付成功",
										icon: "success",
										duration: 2000,
									});
									// #ifdef MP-WEIXIN
									subscribeMessage()
									// #endif
									this.$yrouter.back();
								})
								.finally((res) => {
									//if(typeof(res) == "undefined") return
									uni.showToast({
										title: res,
										icon: "none",
										duration: 2000,
									});
								})
								.catch(function() {
									uni.showToast({
										title: "支付失败",
										icon: "none",
										duration: 2000,
									});
								});
						}
						
					})
					.catch((err) => {
						console.log(err);
						uni.showToast({
							title: err.msg || err.response.data.msg || err.response.data.message,
							icon: "none",
							duration: 2000,
						});
					});
			},
		},
	};
</script>

<style scoped lang="less">
	#iframe {
		display: none;
	}

	.pic-box-color-active {
		background-color: #cf114e !important;
		color: #fff !important;
	}

	.picList {
		margin-bottom: 0.3 * 100rpx;
		margin-top: 0.3 * 100rpx;
	}

	.font-color {
		color: #e83323;
	}

	.recharge {
		border-radius: 0.1 * 100rpx;
		width: 100%;
		background-color: #fff;
		margin: 0.2 * 100rpx auto 0 auto;
		padding: 0.3 * 100rpx;
		border-top-right-radius: 0.39 * 100rpx;
		border-top-left-radius: 0.39 * 100rpx;
		margin-top: -0.45 * 100rpx;
		box-sizing: border-box;
	}

	.recharge .nav {
		height: 0.75 * 100rpx;
		line-height: 0.75 * 100rpx;
		padding: 0 1 * 100rpx;
	}

	.recharge .nav .item {
		font-size: 0.3 * 100rpx;
		color: #333;
	}

	.recharge .nav .item.on {
		font-weight: bold;
		border-bottom: 0.04 * 100rpx solid #e83323;
	}

	.recharge .info-wrapper {}

	.recharge .info-wrapper .money {
		margin-top: 0.6 * 100rpx;
		padding-bottom: 0.2 * 100rpx;
		border-bottom: 1px dashed #ddd;
		text-align: center;
	}

	.recharge .info-wrapper .money span {
		font-size: 0.56 * 100rpx;
		color: #333;
		font-weight: bold;
	}

	.recharge .info-wrapper .money input {
		display: inline-block;
		width: 3 * 100rpx;
		font-size: 0.84 * 100rpx;
		text-align: center;
		color: #282828;
		font-weight: bold;
		padding-right: 0.7 * 100rpx;
	}

	.recharge .info-wrapper .money input::placeholder {
		color: #ddd;
	}

	.recharge .info-wrapper .money input::-webkit-input-placeholder {
		color: #ddd;
	}

	.recharge .info-wrapper .money input:-moz-placeholder {
		color: #ddd;
	}

	.recharge .info-wrapper .money input::-moz-placeholder {
		color: #ddd;
	}

	.recharge .info-wrapper .money input:-ms-input-placeholder {
		color: #ddd;
	}

	.tip {
		font-size: 0.28 * 100rpx;
		color: #333333;
		font-weight: 800;
		margin-bottom: 0.14 * 100rpx;
	}

	.recharge .info-wrapper .tips span {
		color: #ef4a49;
	}

	.recharge .info-wrapper .pay-btn {
		display: block;
		width: 100%;
		height: 0.86 * 100rpx;
		margin: 0.5 * 100rpx auto 0 auto;
		line-height: 0.86 * 100rpx;
		text-align: center;
		color: #fff;
		border-radius: 0.5 * 100rpx;
		font-size: 0.3 * 100rpx;
		font-weight: bold;
	}

	.payment-top {
		width: 100%;
		height: 3.5 * 100rpx;
		background-color: #cf114e;
	}

	.payment-top .name {
		font-size: 0.26 * 100rpx;
		color: rgba(255, 255, 255, 0.8);
		margin-top: -0.38 * 100rpx;
		margin-bottom: 0.3 * 100rpx;
	}

	.payment-top .pic {
		font-size: 0.32 * 100rpx;
		color: #fff;
	}

	.payment-top .pic-font {
		font-size: 0.78 * 100rpx;
		color: #fff;
	}

	.picList .pic-box {
		width: 32%;
		height: auto;
		border-radius: 0.2 * 100rpx;
		margin-top: 0.21 * 100rpx;
		padding: 0.2 * 100rpx 0;
	}

	.pic-box-color {
		background-color: #f4f4f4;
		color: #656565;
	}

	.pic-number {
		font-size: 0.22 * 100rpx;
	}

	.pic-number-pic {
		font-size: 0.38 * 100rpx;
		margin-right: 0.1 * 100rpx;
		text-align: center;
	}

	.pic-box-money {
		width: 100%;
		display: block;
	}
	.nav-title {
		color: #FFFFFF;
	}
</style>
